home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / pascal / tpl60n19.zip / README.DOC < prev    next >
Text File  |  1993-02-16  |  24KB  |  489 lines

  1.      Turbo-Pascal 6.0 Runtime Libary Update - Release 1.9   02-16-1993
  2.  
  3.  
  4.      This library is a complete replacement for the runtime library that
  5.      came with your Turbo Pascal 6.0 compiler. Due to lots of optimizations,
  6.      programs compiled with this version of TURBO.TPL will be faster.
  7.      This library maintains 99.9% compatibility with the original library.
  8.      Differences are usually due to enhancements and should not cause
  9.      any compatibility problems. Some bugs from the original library
  10.      supplied by Borland have been eliminated, but there can be no guarantee
  11.      that new ones have not crept in. If you discover any bugs, or have
  12.      other comments, please let me know. My email and snail mail addresses
  13.      are given below. Due to the nature of Borland's licensing of the
  14.      TPL source code I am not allowed to distribute the source code of
  15.      my enhanced library, so I can only provide the binary. What I am
  16.      including, starting with version 1.8, is the source for the LONGINT
  17.      and the REAL arithmetic routines. Also included for the first time in
  18.      this version is the source of most of the string routines. Since all
  19.      this code does not contain a single line of code written by Borland,
  20.      I think they can't object to the fact that I am making *my* code public.
  21.      The source for the arithmetic rouitnes is contained in the file
  22.      ARISOURC.ZIP. The source code of the string routines is contained in
  23.      file STRSOURC.ZIP. The code of the arithmetic and string routines is
  24.      hereby released into the public domain. You may use it in your own
  25.      programs under the condition that you do not include it into a
  26.      commercial product. Parties interested in commercial use of my code
  27.      should contact me at my address below.
  28.  
  29.  
  30.      THIS VERSION OF THE LIBRARY REPLACEMENT FOR TP 6.0 IS DEFINITELY THE
  31.      FINAL VERSION. NO FURTHER UPDATES WILL BE MADE, AS THE NEW 7.0 VERSION
  32.      OF TURBO PASCAL (AND BORLAND PASCAL) HAS BEEN INTRODUCED IN NOVEMBER
  33.      1992 AND IS NOW AVAILABLE IN LOCALIZED VERSIONS EVERYWHERE. I AM
  34.      PREPARING A SIMILAR LIBRARY FILE CALLED TPL70N10.ZIP FOR USE WITH
  35.      TP/BP 7.0.
  36.  
  37.  
  38.      Original library code is Copyright (C) 1983,91 Borland International
  39.  
  40.  
  41.      New / additional library code is Copyright (C) 1988-1993
  42.  
  43.      Norbert Juffa, Wielandtstr. 14, 7500 Karlsruhe 1, Germany
  44.      Internet: S_JUFFA@IRAVCL.IRA.UKA.DE
  45.  
  46.  
  47.  
  48.      Contents of this document:
  49.  
  50.      I.   Capabilities of RTL replacement
  51.      II.  Revision History
  52.      III. References
  53.  
  54.  
  55.  
  56.      I. Capabilities of RTL replacement
  57.      ==================================
  58.  
  59.      Improvements in SYSTEM module
  60.      -----------------------------
  61.  
  62. o    REAL type software arithmetic operations now comply with ANSI/IEEE
  63.      Standard 754-1985 for Binary Floating Point Arithmetic [1,2] as much
  64.      as possible. Note that REAL arithmetic by design differs from the
  65.      standard in many ways, especially available numeric formats, value
  66.      set, and available operations. The rounding mode implemented here
  67.      is "round to nearest or even" as specified by the standard. Add,
  68.      Subtract, Multiply, Squaring, Division, and Square Root deliver
  69.      exact results with regard to this rounding mode, as demanded by the
  70.      standard. Conversions from REAL to LONGINT and from EXTENDED to REAL
  71.      use rounding to nearest or even, as specified in the standard. Correct
  72.      implementation of above features was tested with the PARANOIA test
  73.      program [3]. The correctness of basic REAL arithmetic functions has
  74.      also been tested against the coprocessor/emulator EXTENDED format
  75.      with the program FUN1_TST. The EXTENDED format carries approximately
  76.      19 decimal digits of precision.
  77.  
  78. o    REAL arithmetic operations have been sped up. Speed-up for SQRT varies
  79.      between a factor of 12 for a 8086 and 29 for a Cyrix 486DLC. FRAC now 
  80.      executes at nearly three times the original speed. Speed-up for SIN, 
  81.      COS, ARCTAN, LN, EXP is between 50% and 100%. Division is now between
  82.      60% and 300% faster than before, depending on the CPU. Overall numeric 
  83.      processing power using REAL arithmetic increases by about 51% for an 
  84.      8086, by 62% for an Intel 386DX, and 80% for a Cyrix 486DLC as measured 
  85.      by the WHETSTONE benchmark [4,5].
  86.  
  87. o    Overall accuracy of REAL arithmetic transcendental functions has been
  88.      improved as indicated by Cody&Waite's ELEFUNT tests [6]: DLOG, DEXP,
  89.      DATAN, DSIN. Correct argument reduction ensures that relative error
  90.      over the whole argument range does not exceed 1.9e-12 for Exp, 2.8e-12
  91.      for Arctan, and 2.7e-12 for Ln. These values have been determined
  92.      by comparing the function returns of the REAL transcendental functions
  93.      to the values computed on a Cyrix 83D87 coprocessor for the EXTENDED
  94.      format. For Sin and Cos, relative error is also in the above range
  95.      when the argument is reasonably small (e.g. in range -100..100) and
  96.      not very close to an integer multiple of 0.25*Pi. The error of the
  97.      transcendental functions expressed in ULPs (units in the last place)
  98.      over the whole argument range does not exceed 1.6 ULPs for Exp, 1.8
  99.      ULPs for Arctan, and 2.2 ULPs for Ln. These values were determined
  100.      using the ULPERR program.
  101.  
  102. o    Execution of coprocessor floating point computations using an 80287 or
  103.      80387 has been accelerated. For these coprocessors, NOPs will be inserted
  104.      before every floating point instruction converted from an emulator
  105.      interrupt instead of WAITs. As a result of this optimization, an
  106.      improvement in execution speed of 15% has been observed running the
  107.      Lawrence Livermore Loops (LLL) [7] on a Cyrix 83D87, the improvement
  108.      for the WHETSTONE benchmark on the 83D87 is 9.4%. Maximum performance
  109.      gain for tight loops (e.g. fractal computation) by this measure is about
  110.      22%.
  111.  
  112. o    On 80287XL, 80387, 80486DX or compatible chips the Sin and Cos functions
  113.      take advantage of the FSIN and FCOS instructions of these coprocessors,
  114.      speeding up these functions by almost a factor of two. As a side effect,
  115.      there is also some improvement in accuracy as measured by the DSIN test
  116.      program from the ELEFUNT test suite. Also, the Arctan function takes
  117.      advantage of the increased argument range of the FPATAN function. These
  118.      optimizations result in another 19% increase in WHETSTONE power, so
  119.      that the total combined speedup over the original library is 25%
  120.      for this benchmark when run on a 387 compatible coprocessor.
  121.  
  122. o    STRING operations are faster, especially for longer strings. Most
  123.      dramatic increase is in the INSERT function, with execution times
  124.      reduced to up to one fourth compared with the original version of
  125.      the RTL. Faster string operations cause 7% performance increase for
  126.      the DHRYSTONE [8,9] benchmark on a 8086.
  127.  
  128. o    Improved speed of random number generation. Random for REAL numbers
  129.      is 10-20% faster, Random for EXTENDED numbers is 5% faster. Due to
  130.      the improvements in the uniform distribution of integer random numbers,
  131.      there is a decrease in the speed of integer random number generation
  132.      of about 5%.
  133.  
  134. o    Binary to decimal conversions used in Str and Write procedures have
  135.      been sped up by up to 70% for integers (BYTE, SHORTINT, INTEGER,
  136.      WORD, LONGINT), up to 5% for REAL numbers and about 3% for EXTENDED
  137.      numbers.
  138.  
  139. o    Improved speed of LONGINT arithmetic. Division enjoys fourfold reduction
  140.      of execution time on 8086, for an Intel RapidCAD CPU the speed up factor
  141.      is 5.2 and for a Cyrix 486DLC the speed-up factor is 10.1.
  142.  
  143. o    Several of the functions of the heap manager have been tuned, resulting
  144.      in 6%-18% faster operation for these routines, depending on the CPU used.
  145.  
  146. o    Set functions have been sped up by a few percent, but the add variable
  147.      range operation may be up to eight times as fast.
  148.  
  149. o    UPCASE function has been enhanced to support the complete IBM c